# -*- coding: utf-8 -*-
# @Project : APITestModel
# @File    : ddtInput.py
# @Author  : 朱宽
# @Time    : 2021/4/1 9:28
# @Software: Win10 / Python3 / Pycharm
from src.utils.parseExcel import ReadExcel
from config import globalConfig
import json


class EveryTestCaseFlag():
    '''
    主要获取指定测试用例名称标记的测试用例，并将这个用例组成列表返回
    '''

    def __init__(self, file_name, TestCaseFlag):

        self.file_name_half=file_name.split('.')[0]
        self.ReadExcel = ReadExcel(file_name=file_name)  # 初始化这个类
        self.test_data_all = self.ReadExcel.test_data()  # 调用这个函数，得到所有的测试用例数据
        self.TestCaseFlag = TestCaseFlag  # 全局化这个参数

        # 将处理后的结果以json格式文件持久化，便于分享
        with open(globalConfig.excel_data_path + self.file_name_half + '.json', 'w+') as f:
            json.dump(self.test_data_all,f,indent=4,ensure_ascii=False)

    def get_every_TestCaseFlag(self):
        '''
        主要实现，在所有测试数据中筛选指定TestCaseFlag的用例数据
        :return:
        '''
        try:

            test_case_flag = []
            for i in range(0, len(self.test_data_all)):

                if self.TestCaseFlag == self.test_data_all[i]['TestCaseFlag']:
                    test_case_flag.append(self.test_data_all[i])

            return test_case_flag

        except Exception as e:
            print(e)


if __name__ == "__main__":
    test = EveryTestCaseFlag(file_name='testdata.xlsx', TestCaseFlag='login-jmx')
    print(json.dumps(test.test_data_all, indent=4, ensure_ascii=False))
    print('*' * 200)
    print(json.dumps(test.get_every_TestCaseFlag(), indent=4, ensure_ascii=False))
